gen-process operation parameter-list symbol-pattern &optional how
Use this function to generate processed copies of a symbol-pattern. Each copy can be processed by an individual value. The number of copies generated equal the length of the parameter-list.
(gen-process '(symbol-transpose x y) '(1 2 -3 4) '(h e c))
--> (i f d j g e e b -b l i g)
(gen-process '(symbol-transpose x y)
'(1 2 -3 4) '(h e c) :list)
--> ((i f d) (j g e) (e b -b) (l i g))
The operation can be any function expression with or without a parameter. The list must be quoted and the parameter x MUST be used to represent the parameter-list, the parameter y used to represent the symbol-pattern.
If the keyword :list is used the processed generations are contained in separate lists. If omited, as above, they are appended.
This function can be used with most symbol-generators and with most symbol-processors. Notice how symbols in the parameter-list can be used:
(gen-process '(symbol-inversion x y) '(a b c b f e) '(h e c))
--> (-h -e -c -f -c a -d a c -f -c a d g i b e g)
(gen-process '(filter-delete x y)
'(h e e (h c) e e h (c e) h) '(h e c))
--> (= e c h = c h = c = e = h = c h = c = e c h = = = e c)
This function has many possibilities. It might be used to generate the transpositions of a single arpeggio pattern in a tonality derived from a random fractal or digital synth output.
(setq arpeggio '(a -d e g -f h))
(setq values (vector-to-list
(vector-round -12 12
(gen-noise-white 32))))
(setq material
(gen-process '(symbol-transpose x y) values arpeggio))